﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _16_事件_基础
{

    class Mon
    {
        public event Action Eat=null;

        public void Cook()
        {
            Console.WriteLine("妈妈：开饭了！");
            Eat?.Invoke();
        }

    }

    class Father
    {
        public void Eat()
        {
            Console.WriteLine("父亲：我开饭了");
        }
    }

    class Son
    {
        public void Eat()
        {
            Console.WriteLine("儿子：我不饿");
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            //创建对象
            Mon mon = new Mon();
            Father father = new Father();
            Son son = new Son();

            //为事件绑定方法
            mon.Eat += father.Eat;
            mon.Eat += son.Eat;

            //调用方法
            mon.Cook();

            //练习题
            //通过事件实现如下效果：现有一个人，一群鸟，人有一把手枪，当人开枪时，所有的鸟都被吓飞了。 
            //示例:
            //人开枪了
            //鸟1飞走了
            //鸟2飞走了
            //鸟3飞走了


            Console.Read();
        }
    }
}
